#pragma once

namespace pf
{
	class Platform
	{
	public:

		virtual void						Initialise(InitParamsHandle hInitParams) = 0;
		virtual void						Shutdown() = 0;
		virtual bool						Present() = 0;

		virtual void*						GetPlatformWindowHandle() const = 0;
		virtual DisplayConfigHandle			GetDisplayConfig() = 0;

		virtual InputKeyboardHandle			GetKeyboard() = 0;
	};

	typedef cr::Handle<Platform> PlatformHandle;
}